home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 9 / Night Owl CD-ROM (NOPV9) (Night Owl Publisher) (1993).ISO / 039a / netpq203.zip / F2.C < prev    next >
Text File  |  1993-03-03  |  3KB  |  128 lines

  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <dos.h>
  4.  
  5. #include "nos.h"
  6. #include "noslib.h"
  7. #include "netpq.h"
  8. #include "proto.h"
  9.  
  10. extern struct serverdef *server;
  11. extern struct localqueuedef *localqueue;
  12.  
  13. extern int maxlocalqueuecount, localqueuecount, numberoflogins;
  14.  
  15. int f2keypressed ()
  16.     {
  17.     //    handles response for f2 key (control queue)
  18.  
  19.     int f2menuitems = 4;
  20.     char *f2menu [] =
  21.     {
  22.     "Cancel File",
  23.     "Hold File",
  24.     "Release File",
  25.     "Rush File",
  26.     "Show Info",
  27.     "View File",
  28.     "Copy File",
  29.     "Keep File",
  30.     };
  31.  
  32.     int f2xsize = strlen (f2menu [2]);
  33.     int i, action, servernum, queuenum;
  34.     int ybase;
  35.  
  36.     ybase = wherey () + 1;
  37.     if (ybase + f2menuitems > 24)
  38.     ybase = 24 - f2menuitems;
  39.  
  40.     if (localqueuecount == 0)
  41.     {
  42.     message ("THERE ARE NO FILES QUEUED\a", true);
  43.     nohighlight ();
  44.     sleep (2);
  45.     return 0;
  46.     }
  47.     do
  48.     {
  49.     if ( (action = menu (f2menu, f2menuitems, f2xsize, firstxpos, ybase)) != -1)
  50.         {
  51.         do
  52.         {
  53.         if ( (servernum = displayservernames (ybase)) != -1)
  54.             {
  55.             if ( (queuenum = displayqueuenumbers (servernum, ybase)) != -1)
  56.             {
  57.             handlequeuerequest (action, servernum, queuenum);
  58.             return 0;
  59.             }
  60.             }
  61.         }while (servernum != -1);
  62.         }
  63.     }while (action != -1);
  64.     return -1;
  65.     }
  66.  
  67.  
  68. int displayqueuenumbers (int servernum, int ybase)
  69.     {
  70.     //    displays a menu of all queued file sequence numbers
  71.  
  72.     int i, selection, j;
  73.     char *localqueuenames [20];
  74.     char buf [20];
  75.  
  76.     i = 0;
  77.     j = 0;
  78.  
  79.     while ( (i < maxlocalqueuecount) && (i < 20) )
  80.     {
  81.     if (localqueue [i] .server == servernum)
  82.         localqueuenames [j++] = localqueue [i] .sequencestring;
  83.     i++;
  84.     }
  85.  
  86.     if (j > (21 - (numberoflogins * 5)))
  87.     j = 1 + (21 - (numberoflogins * 5)) / numberoflogins;
  88.  
  89.     if (ybase + j > 24)
  90.     ybase = 24 - j;
  91.  
  92.     if (j > 0)
  93.     selection = menu (localqueuenames, j, 6, thirdxpos, ybase);
  94.     else
  95.     {
  96.     gotoxy (1, 1);
  97.     errorhighlight ();
  98.     message ("THERE ARE NO FILES QUEUED\a", true);
  99.     nohighlight ();
  100.     sleep (2);
  101.     return (-1);
  102.     }
  103.     return selection;
  104.     }
  105.  
  106.  
  107.  
  108.  
  109. void handlequeuerequest (int action, int servernum, int queuenum)
  110.     {
  111.     //    processes the queue action requested by the operator
  112.  
  113.     action += CQ_cancel;
  114.  
  115.     if (action <= CQ_rush)
  116.     {
  117.     if ( (action == CQ_rush) && (checkqueueprivileges (servernum) == -1) )
  118.         return;
  119.  
  120.     message ("UPDATING, PLEASE WAIT ...", false);
  121.     if (NOSControlQueue (&localqueue [queuenum] .printer, action, server [servernum] .servername, localqueue [queuenum] .qe .QE_sequence) == -1)
  122.         {
  123.         NOSperror ("NOSControlQueue");
  124.         exit (1);
  125.         }
  126.     }
  127.     }
  128.